package com.shujia.scala

import java.io.{BufferedReader, FileReader}

import scala.io.{BufferedSource, Source}

object Demo9IO {
  def main(args: Array[String]): Unit = {

    //使用java方式读取文件
    val read = new FileReader("java/data/words.txt")
    val bf = new BufferedReader(read)
    var line = bf.readLine()
    while (line != null) {
      println(line)
      line = bf.readLine()
    }
    bf.close()

    println("=" * 100)
    //scala读取本地文件  返回一个缓冲输入流
    val source: BufferedSource = Source.fromFile("java/data/words.txt")

    //返回一个迭代器    迭代器:只能迭代一次   如果需要多次使用  将迭代器转换成数组或者集合
    val lines = source.getLines()

    //    lines.foreach(println)
    //    println("=" * 100)
    //    lines.foreach(println)

    //将迭代器转换成数组
    val arr = lines.toArray

    Source
      .fromFile("java/data/words.txt") //读取文件
      .getLines() //返回一个迭代器
      .foreach(println) //遍历打印


    /**
      * foreach   遍历
      * map    会返回一个新的集合
      * filter   数据过滤
      *
      */
    println("=" * 100)


    /**
      *
      * map  创意一个对象返回一个对象
      *
      * flatMap  一行变多行   在map的基础上进行扁平化
      * 1、map
      * 2、flat
      *
      *
      */
    arr.map(line => line.split(",").toList).foreach(println)

    println("=" * 100)

    arr.flatMap(line => line.split(",").toList).foreach(println)

  }
}
